home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / lib / partman / init.d / 50efi < prev    next >
Text File  |  2009-10-28  |  1KB  |  60 lines

  1. #!/bin/sh
  2.  
  3. # This script sets method "efi" for all fat16 partitions that have the boot
  4. # flag set.
  5.  
  6. # Give the kernel a chance to create /proc/efi if appropriate.
  7. modprobe efivars >/dev/null 2>&1 || true
  8.  
  9. if [ -d /proc/efi ] || [ -d /sys/firmware/efi ]; then
  10.     > /var/lib/partman/efi
  11. else
  12.     ARCH="$(archdetect)"
  13.     case $ARCH in
  14.         i386/mac|amd64/mac)
  15.         # Intel Macs have an EFI partition, regardless of
  16.         # whether we're currently booted using BIOS
  17.         # compatibility or not (if we are, we won't be able to
  18.         # talk to EFI directly).
  19.         > /var/lib/partman/efi
  20.         ;;
  21.         *)
  22.         rm -f /var/lib/partman/efi
  23.         exit 0
  24.         ;;
  25.     esac
  26. fi
  27.  
  28. . /lib/partman/lib/base.sh
  29.  
  30. for dev in /var/lib/partman/devices/*; do
  31.     [ -d "$dev" ] || continue
  32.     cd $dev
  33.     partitions=
  34.     open_dialog PARTITIONS
  35.     while { read_line num id size type fs path name; [ "$id" ]; }; do
  36.         if [ "$fs" = fat16 ]; then
  37.             partitions="$partitions $id"
  38.         elif [ "$fs" = fat32 ] && [ "$name" = "EFI System Partition" ]; then
  39.             partitions="$partitions $id"
  40.         fi
  41.     done
  42.     close_dialog
  43.  
  44.     for id in $partitions; do
  45.     efi=no
  46.     open_dialog GET_FLAGS $id
  47.     while { read_line flag; [ "$flag" ]; }; do
  48.         if [ "$flag" = boot ]; then
  49.             efi=yes
  50.             # cannot break here
  51.         fi
  52.     done
  53.     close_dialog
  54.     if [ "$efi" = yes ]; then
  55.         mkdir -p $id
  56.         echo efi >$id/method
  57.     fi
  58.     done
  59. done
  60.